package com.hdy.common.log;

import android.util.Log;

import com.hdy.common.BuildConfig;

public class LLog {

    public static boolean sIsDebug = false;

    private static final LTagPrinter sTagPrinter = new LTagPrinter();

    LLog() {
        throw new UnsupportedOperationException("cannot be instantiated");
    }

    public static void init() {
        sIsDebug = BuildConfig.DEBUG;
        //可以动态配置打开Tag精确度
        if (sIsDebug) {
            sTagPrinter.setLTagPriority(LTagPriority.TAG_CLASS);
        } else {
            sTagPrinter.setLTagPriority(LTagPriority.TAG_UNIFIED);
        }
    }

    public static void i(String msg) {
        if (sIsDebug) {
            Log.i(sTagPrinter.generateTag(), msg);
        }
    }

    public static void d(String msg) {
        if (sIsDebug) {
            Log.d(sTagPrinter.generateTag(), msg);
        }
    }

    public static void e(String msg) {
        if (sIsDebug) {
            Log.e(sTagPrinter.generateTag(), msg);
        }
    }

    public static void v(String msg) {
        if (sIsDebug) {
            Log.v(sTagPrinter.generateTag(), msg);
        }
    }

    public static void i(String tag, String msg) {
        if (sIsDebug) {
            Log.i(sTagPrinter.generateTag(tag), msg);
        }
    }

    public static void d(String tag, String msg) {
        if (sIsDebug) {
            Log.d(sTagPrinter.generateTag(tag), msg);
        }
    }


    public static void d(String tag, String msg, Throwable throwable) {
        if (sIsDebug) {
            Log.d(sTagPrinter.generateTag(tag), msg, throwable);
        }
    }

    public static void e(String tag, String msg) {
        if (sIsDebug) {
            Log.e(sTagPrinter.generateTag(tag), msg);
        }
    }

    public static void v(String tag, String msg) {
        if (sIsDebug) {
            Log.v(sTagPrinter.generateTag(tag), msg);
        }
    }
}
